// vite.config.js
import path2 from "node:path";
import Vue from "file:///C:/Users/Administrator/Desktop/%E8%B6%85%E7%BA%A7%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F/xiyou-solomon-sub/node_modules/.pnpm/@vitejs+plugin-vue@5.1.4_vite@5.4.9_sass@1.79.3__vue@3.5.12_typescript@5.5.4_/node_modules/@vitejs/plugin-vue/dist/index.mjs";
import VueJsx from "file:///C:/Users/Administrator/Desktop/%E8%B6%85%E7%BA%A7%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F/xiyou-solomon-sub/node_modules/.pnpm/@vitejs+plugin-vue-jsx@4.0.1_vite@5.4.9_sass@1.79.3__vue@3.5.12_typescript@5.5.4_/node_modules/@vitejs/plugin-vue-jsx/dist/index.mjs";
import Unocss from "file:///C:/Users/Administrator/Desktop/%E8%B6%85%E7%BA%A7%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F/xiyou-solomon-sub/node_modules/.pnpm/unocss@0.63.6_postcss@8.4.47_rollup@4.20.0_typescript@5.5.4_vite@5.4.9_sass@1.79.3_/node_modules/unocss/dist/vite.mjs";
import AutoImport from "file:///C:/Users/Administrator/Desktop/%E8%B6%85%E7%BA%A7%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F/xiyou-solomon-sub/node_modules/.pnpm/unplugin-auto-import@0.18.3_@nuxt+kit@3.13.2_rollup@4.20.0_webpack-sources@3.2.3__@vueuse+cor_fkrspdh3kagy3ym7gikhkysaom/node_modules/unplugin-auto-import/dist/vite.js";
import { NaiveUiResolver } from "file:///C:/Users/Administrator/Desktop/%E8%B6%85%E7%BA%A7%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F/xiyou-solomon-sub/node_modules/.pnpm/unplugin-vue-components@0.27.4_@babel+parser@7.25.3_@nuxt+kit@3.13.2_rollup@4.20.0_webpack-so_i5yisaup3eobrkctsqimvsow6e/node_modules/unplugin-vue-components/dist/resolvers.js";
import Components from "file:///C:/Users/Administrator/Desktop/%E8%B6%85%E7%BA%A7%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F/xiyou-solomon-sub/node_modules/.pnpm/unplugin-vue-components@0.27.4_@babel+parser@7.25.3_@nuxt+kit@3.13.2_rollup@4.20.0_webpack-so_i5yisaup3eobrkctsqimvsow6e/node_modules/unplugin-vue-components/dist/vite.js";
import { defineConfig, loadEnv } from "file:///C:/Users/Administrator/Desktop/%E8%B6%85%E7%BA%A7%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F/xiyou-solomon-sub/node_modules/.pnpm/vite@5.4.9_sass@1.79.3/node_modules/vite/dist/node/index.js";
import removeNoMatch from "file:///C:/Users/Administrator/Desktop/%E8%B6%85%E7%BA%A7%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F/xiyou-solomon-sub/node_modules/.pnpm/vite-plugin-router-warn@1.0.0/node_modules/vite-plugin-router-warn/dist/index.mjs";
import VueDevTools from "file:///C:/Users/Administrator/Desktop/%E8%B6%85%E7%BA%A7%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F/xiyou-solomon-sub/node_modules/.pnpm/vite-plugin-vue-devtools@7.5.2_@nuxt+kit@3.13.2_rollup@4.20.0_webpack-sources@3.2.3__rollup@4_axbyw3s2dr5vfidpguibff3h3u/node_modules/vite-plugin-vue-devtools/dist/vite.mjs";

// build/index.js
import path from "node:path";
import { globSync } from "file:///C:/Users/Administrator/Desktop/%E8%B6%85%E7%BA%A7%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F/xiyou-solomon-sub/node_modules/.pnpm/glob@11.0.0/node_modules/glob/dist/esm/index.js";

// src/assets/icons/dynamic-icons.js
var dynamic_icons_default = ["i-simple-icons:juejin"];

// build/index.js
function getIcons() {
  const feFiles = globSync("src/assets/icons/feather/*.svg", { nodir: true, strict: true });
  const meFiles = globSync("src/assets/icons/isme/*.svg", { nodir: true, strict: true });
  const feIcons = feFiles.map((filePath) => {
    const fileName = path.basename(filePath);
    const fileNameWithoutExt = path.parse(fileName).name;
    return `i-fe:${fileNameWithoutExt}`;
  });
  const meIcons = meFiles.map((filePath) => {
    const fileName = path.basename(filePath);
    const fileNameWithoutExt = path.parse(fileName).name;
    return `i-me:${fileNameWithoutExt}`;
  });
  return [...dynamic_icons_default, ...feIcons, ...meIcons];
}
function getPagePathes() {
  const files = globSync("src/views/**/*.vue");
  return files.map((item) => `/${path.normalize(item).replace(/\\/g, "/")}`);
}

// build/plugin-isme/icons.js
var PLUGIN_ICONS_ID = "isme:icons";
function pluginIcons() {
  return {
    name: "isme:icons",
    resolveId(id) {
      if (id === PLUGIN_ICONS_ID)
        return `\0${PLUGIN_ICONS_ID}`;
    },
    load(id) {
      if (id === `\0${PLUGIN_ICONS_ID}`) {
        return `export default ${JSON.stringify(getIcons())}`;
      }
    }
  };
}

// build/plugin-isme/page-pathes.js
var PLUGIN_PAGE_PATHES_ID = "isme:page-pathes";
function pluginPagePathes() {
  return {
    name: "isme:page-pathes",
    resolveId(id) {
      if (id === PLUGIN_PAGE_PATHES_ID)
        return `\0${PLUGIN_PAGE_PATHES_ID}`;
    },
    load(id) {
      if (id === `\0${PLUGIN_PAGE_PATHES_ID}`) {
        return `export default ${JSON.stringify(getPagePathes())}`;
      }
    }
  };
}

// vite.config.js
var vite_config_default = defineConfig(({ mode }) => {
  const viteEnv = loadEnv(mode, process.cwd());
  const { VITE_PUBLIC_PATH, VITE_PROXY_TARGET } = viteEnv;
  return {
    base: VITE_PUBLIC_PATH || "/",
    plugins: [
      Vue(),
      VueJsx(),
      VueDevTools(),
      Unocss(),
      AutoImport({
        imports: ["vue", "vue-router"],
        dts: false
      }),
      Components({
        resolvers: [NaiveUiResolver()],
        dts: false
        // 禁用自动生成.d.ts文件
      }),
      // 自定义插件，用于生成页面文件的path，并添加到虚拟模块
      pluginPagePathes(),
      // 自定义插件，用于生成自定义icon，并添加到虚拟模块
      pluginIcons(),
      // 移除非必要的vue-router动态路由警告: No match found for location with path
      removeNoMatch()
    ],
    resolve: {
      alias: {
        "@": path2.resolve(process.cwd(), "src"),
        "~": path2.resolve(process.cwd())
      }
    },
    server: {
      host: "0.0.0.0",
      port: 3200,
      open: false,
      proxy: {
        "/api": {
          target: VITE_PROXY_TARGET,
          changeOrigin: true,
          // 允许跨域
          websocket: true,
          // 允许websocket
          rewrite: (path3) => path3.replace(/^\/api/, ""),
          secure: false,
          // 允许http协议
          configure: (proxy, options) => {
            proxy.on("proxyRes", (proxyRes, req) => {
              proxyRes.headers["x-real-url"] = new URL(req.url || "", options.target)?.href || "";
            });
          }
        }
      }
    },
    build: {
      chunkSizeWarningLimit: 1024
      // chunk 大小警告的限制（单位kb）
    }
  };
});
export {
  vite_config_default as default
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcuanMiLCAiYnVpbGQvaW5kZXguanMiLCAic3JjL2Fzc2V0cy9pY29ucy9keW5hbWljLWljb25zLmpzIiwgImJ1aWxkL3BsdWdpbi1pc21lL2ljb25zLmpzIiwgImJ1aWxkL3BsdWdpbi1pc21lL3BhZ2UtcGF0aGVzLmpzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiQzpcXFxcVXNlcnNcXFxcQWRtaW5pc3RyYXRvclxcXFxEZXNrdG9wXFxcXFx1OEQ4NVx1N0VBN1x1N0JBMVx1NzQwNlx1N0NGQlx1N0VERlxcXFx4aXlvdS1zb2xvbW9uLXN1YlwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiQzpcXFxcVXNlcnNcXFxcQWRtaW5pc3RyYXRvclxcXFxEZXNrdG9wXFxcXFx1OEQ4NVx1N0VBN1x1N0JBMVx1NzQwNlx1N0NGQlx1N0VERlxcXFx4aXlvdS1zb2xvbW9uLXN1YlxcXFx2aXRlLmNvbmZpZy5qc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vQzovVXNlcnMvQWRtaW5pc3RyYXRvci9EZXNrdG9wLyVFOCVCNiU4NSVFNyVCQSVBNyVFNyVBRSVBMSVFNyU5MCU4NiVFNyVCMyVCQiVFNyVCQiU5Ri94aXlvdS1zb2xvbW9uLXN1Yi92aXRlLmNvbmZpZy5qc1wiO2ltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCdcclxuaW1wb3J0IFZ1ZSBmcm9tICdAdml0ZWpzL3BsdWdpbi12dWUnXHJcbmltcG9ydCBWdWVKc3ggZnJvbSAnQHZpdGVqcy9wbHVnaW4tdnVlLWpzeCdcclxuaW1wb3J0IFVub2NzcyBmcm9tICd1bm9jc3Mvdml0ZSdcclxuaW1wb3J0IEF1dG9JbXBvcnQgZnJvbSAndW5wbHVnaW4tYXV0by1pbXBvcnQvdml0ZSdcclxuaW1wb3J0IHsgTmFpdmVVaVJlc29sdmVyIH0gZnJvbSAndW5wbHVnaW4tdnVlLWNvbXBvbmVudHMvcmVzb2x2ZXJzJ1xyXG5pbXBvcnQgQ29tcG9uZW50cyBmcm9tICd1bnBsdWdpbi12dWUtY29tcG9uZW50cy92aXRlJ1xyXG5pbXBvcnQgeyBkZWZpbmVDb25maWcsIGxvYWRFbnYgfSBmcm9tICd2aXRlJ1xyXG5pbXBvcnQgcmVtb3ZlTm9NYXRjaCBmcm9tICd2aXRlLXBsdWdpbi1yb3V0ZXItd2FybidcclxuaW1wb3J0IFZ1ZURldlRvb2xzIGZyb20gJ3ZpdGUtcGx1Z2luLXZ1ZS1kZXZ0b29scydcclxuaW1wb3J0IHsgcGx1Z2luSWNvbnMsIHBsdWdpblBhZ2VQYXRoZXMgfSBmcm9tICcuL2J1aWxkL3BsdWdpbi1pc21lJ1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKCh7IG1vZGUgfSkgPT4ge1xyXG4gIGNvbnN0IHZpdGVFbnYgPSBsb2FkRW52KG1vZGUsIHByb2Nlc3MuY3dkKCkpXHJcbiAgY29uc3QgeyBWSVRFX1BVQkxJQ19QQVRILCBWSVRFX1BST1hZX1RBUkdFVCB9ID0gdml0ZUVudlxyXG4gIC8vIGNvbnNvbGUubG9nKCdcdTY3MERcdTUyQTFcdTU0MkZcdTUyQTguLi4uLi4nKVxyXG4gIC8vIGNvbnNvbGUubG9nKCdWSVRFX1BVQkxJQ19QQVRIOicsIFZJVEVfUFVCTElDX1BBVEgpXHJcbiAgLy8gY29uc29sZS5sb2coJ1ZJVEVfUFJPWFlfVEFSR0VUOicsIFZJVEVfUFJPWFlfVEFSR0VUKVxyXG5cclxuICByZXR1cm4ge1xyXG4gICAgYmFzZTogVklURV9QVUJMSUNfUEFUSCB8fCAnLycsXHJcbiAgICBwbHVnaW5zOiBbXHJcbiAgICAgIFZ1ZSgpLFxyXG4gICAgICBWdWVKc3goKSxcclxuICAgICAgVnVlRGV2VG9vbHMoKSxcclxuICAgICAgVW5vY3NzKCksXHJcbiAgICAgIEF1dG9JbXBvcnQoe1xyXG4gICAgICAgIGltcG9ydHM6IFsndnVlJywgJ3Z1ZS1yb3V0ZXInXSxcclxuICAgICAgICBkdHM6IGZhbHNlLFxyXG4gICAgICB9KSxcclxuICAgICAgQ29tcG9uZW50cyh7XHJcbiAgICAgICAgcmVzb2x2ZXJzOiBbTmFpdmVVaVJlc29sdmVyKCldLFxyXG4gICAgICAgIGR0czogZmFsc2UsIC8vIFx1Nzk4MVx1NzUyOFx1ODFFQVx1NTJBOFx1NzUxRlx1NjIxMC5kLnRzXHU2NTg3XHU0RUY2XHJcbiAgICAgIH0pLFxyXG4gICAgICAvLyBcdTgxRUFcdTVCOUFcdTRFNDlcdTYzRDJcdTRFRjZcdUZGMENcdTc1MjhcdTRFOEVcdTc1MUZcdTYyMTBcdTk4NzVcdTk3NjJcdTY1ODdcdTRFRjZcdTc2ODRwYXRoXHVGRjBDXHU1RTc2XHU2REZCXHU1MkEwXHU1MjMwXHU4NjVBXHU2MkRGXHU2QTIxXHU1NzU3XHJcbiAgICAgIHBsdWdpblBhZ2VQYXRoZXMoKSxcclxuICAgICAgLy8gXHU4MUVBXHU1QjlBXHU0RTQ5XHU2M0QyXHU0RUY2XHVGRjBDXHU3NTI4XHU0RThFXHU3NTFGXHU2MjEwXHU4MUVBXHU1QjlBXHU0RTQ5aWNvblx1RkYwQ1x1NUU3Nlx1NkRGQlx1NTJBMFx1NTIzMFx1ODY1QVx1NjJERlx1NkEyMVx1NTc1N1xyXG4gICAgICBwbHVnaW5JY29ucygpLFxyXG4gICAgICAvLyBcdTc5RkJcdTk2NjRcdTk3NUVcdTVGQzVcdTg5ODFcdTc2ODR2dWUtcm91dGVyXHU1MkE4XHU2MDAxXHU4REVGXHU3NTMxXHU4QjY2XHU1NDRBOiBObyBtYXRjaCBmb3VuZCBmb3IgbG9jYXRpb24gd2l0aCBwYXRoXHJcbiAgICAgIHJlbW92ZU5vTWF0Y2goKSxcclxuICAgIF0sXHJcbiAgICByZXNvbHZlOiB7XHJcbiAgICAgIGFsaWFzOiB7XHJcbiAgICAgICAgJ0AnOiBwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSwgJ3NyYycpLFxyXG4gICAgICAgICd+JzogcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCkpLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIHNlcnZlcjoge1xyXG4gICAgICBob3N0OiAnMC4wLjAuMCcsXHJcbiAgICAgIHBvcnQ6IDMyMDAsXHJcbiAgICAgIG9wZW46IGZhbHNlLFxyXG4gICAgICBwcm94eToge1xyXG4gICAgICAgICcvYXBpJzoge1xyXG4gICAgICAgICAgdGFyZ2V0OiBWSVRFX1BST1hZX1RBUkdFVCxcclxuICAgICAgICAgIGNoYW5nZU9yaWdpbjogdHJ1ZSwgLy8gXHU1MTQxXHU4QkI4XHU4REU4XHU1N0RGXHJcbiAgICAgICAgICB3ZWJzb2NrZXQ6IHRydWUsIC8vIFx1NTE0MVx1OEJCOHdlYnNvY2tldFxyXG4gICAgICAgICAgcmV3cml0ZTogcGF0aCA9PiBwYXRoLnJlcGxhY2UoL15cXC9hcGkvLCAnJyksXHJcbiAgICAgICAgICBzZWN1cmU6IGZhbHNlLCAvLyBcdTUxNDFcdThCQjhodHRwXHU1MzRGXHU4QkFFXHJcbiAgICAgICAgICBjb25maWd1cmU6IChwcm94eSwgb3B0aW9ucykgPT4ge1xyXG4gICAgICAgICAgICAvLyBcdTkxNERcdTdGNkVcdTZCNjRcdTk4NzlcdTUzRUZcdTU3MjhcdTU0Q0RcdTVFOTRcdTU5MzRcdTRFMkRcdTc3MEJcdTUyMzBcdThCRjdcdTZDNDJcdTc2ODRcdTc3MUZcdTVCOUVcdTU3MzBcdTU3NDBcclxuICAgICAgICAgICAgcHJveHkub24oJ3Byb3h5UmVzJywgKHByb3h5UmVzLCByZXEpID0+IHtcclxuICAgICAgICAgICAgICBwcm94eVJlcy5oZWFkZXJzWyd4LXJlYWwtdXJsJ10gPSBuZXcgVVJMKHJlcS51cmwgfHwgJycsIG9wdGlvbnMudGFyZ2V0KT8uaHJlZiB8fCAnJ1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIGJ1aWxkOiB7XHJcbiAgICAgIGNodW5rU2l6ZVdhcm5pbmdMaW1pdDogMTAyNCwgLy8gY2h1bmsgXHU1OTI3XHU1QzBGXHU4QjY2XHU1NDRBXHU3Njg0XHU5NjUwXHU1MjM2XHVGRjA4XHU1MzU1XHU0RjREa2JcdUZGMDlcclxuICAgIH0sXHJcbiAgfVxyXG59KVxyXG4iLCAiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIkM6XFxcXFVzZXJzXFxcXEFkbWluaXN0cmF0b3JcXFxcRGVza3RvcFxcXFxcdThEODVcdTdFQTdcdTdCQTFcdTc0MDZcdTdDRkJcdTdFREZcXFxceGl5b3Utc29sb21vbi1zdWJcXFxcYnVpbGRcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkM6XFxcXFVzZXJzXFxcXEFkbWluaXN0cmF0b3JcXFxcRGVza3RvcFxcXFxcdThEODVcdTdFQTdcdTdCQTFcdTc0MDZcdTdDRkJcdTdFREZcXFxceGl5b3Utc29sb21vbi1zdWJcXFxcYnVpbGRcXFxcaW5kZXguanNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0M6L1VzZXJzL0FkbWluaXN0cmF0b3IvRGVza3RvcC8lRTglQjYlODUlRTclQkElQTclRTclQUUlQTElRTclOTAlODYlRTclQjMlQkIlRTclQkIlOUYveGl5b3Utc29sb21vbi1zdWIvYnVpbGQvaW5kZXguanNcIjtpbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnXHJcbmltcG9ydCB7IGdsb2JTeW5jIH0gZnJvbSAnZ2xvYidcclxuaW1wb3J0IGR5bmFtaWNJY29ucyBmcm9tICcuLi9zcmMvYXNzZXRzL2ljb25zL2R5bmFtaWMtaWNvbnMuanMnXHJcblxyXG4vKipcclxuICogQHVzYWdlIFx1NzUxRlx1NjIxMGljb25zLCBcdTc1MjhcdTRFOEUgdW5vY3NzIHNhZmVsaXN0XHVGRjBDXHU0RUU1XHU2NTJGXHU2MzAxXHU5ODc1XHU5NzYyXHU1MkE4XHU2MDAxXHU2RTMyXHU2N0QzXHU4MUVBXHU1QjlBXHU0RTQ5XHU1NkZFXHU2ODA3XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SWNvbnMoKSB7XHJcbiAgY29uc3QgZmVGaWxlcyA9IGdsb2JTeW5jKCdzcmMvYXNzZXRzL2ljb25zL2ZlYXRoZXIvKi5zdmcnLCB7IG5vZGlyOiB0cnVlLCBzdHJpY3Q6IHRydWUgfSlcclxuICBjb25zdCBtZUZpbGVzID0gZ2xvYlN5bmMoJ3NyYy9hc3NldHMvaWNvbnMvaXNtZS8qLnN2ZycsIHsgbm9kaXI6IHRydWUsIHN0cmljdDogdHJ1ZSB9KVxyXG4gIGNvbnN0IGZlSWNvbnMgPSBmZUZpbGVzLm1hcCgoZmlsZVBhdGgpID0+IHtcclxuICAgIGNvbnN0IGZpbGVOYW1lID0gcGF0aC5iYXNlbmFtZShmaWxlUGF0aCkgLy8gXHU4M0I3XHU1M0Q2XHU2NTg3XHU0RUY2XHU1NDBEXHVGRjBDXHU1MzA1XHU2MkVDXHU1NDBFXHU3RjAwXHJcbiAgICBjb25zdCBmaWxlTmFtZVdpdGhvdXRFeHQgPSBwYXRoLnBhcnNlKGZpbGVOYW1lKS5uYW1lIC8vIFx1ODNCN1x1NTNENlx1NTNCQlx1OTY2NFx1NTQwRVx1N0YwMFx1NzY4NFx1NjU4N1x1NEVGNlx1NTQwRFxyXG4gICAgcmV0dXJuIGBpLWZlOiR7ZmlsZU5hbWVXaXRob3V0RXh0fWBcclxuICB9KVxyXG4gIGNvbnN0IG1lSWNvbnMgPSBtZUZpbGVzLm1hcCgoZmlsZVBhdGgpID0+IHtcclxuICAgIGNvbnN0IGZpbGVOYW1lID0gcGF0aC5iYXNlbmFtZShmaWxlUGF0aCkgLy8gXHU4M0I3XHU1M0Q2XHU2NTg3XHU0RUY2XHU1NDBEXHVGRjBDXHU1MzA1XHU2MkVDXHU1NDBFXHU3RjAwXHJcbiAgICBjb25zdCBmaWxlTmFtZVdpdGhvdXRFeHQgPSBwYXRoLnBhcnNlKGZpbGVOYW1lKS5uYW1lIC8vIFx1ODNCN1x1NTNENlx1NTNCQlx1OTY2NFx1NTQwRVx1N0YwMFx1NzY4NFx1NjU4N1x1NEVGNlx1NTQwRFxyXG4gICAgcmV0dXJuIGBpLW1lOiR7ZmlsZU5hbWVXaXRob3V0RXh0fWBcclxuICB9KVxyXG5cclxuICByZXR1cm4gWy4uLmR5bmFtaWNJY29ucywgLi4uZmVJY29ucywgLi4ubWVJY29uc11cclxufVxyXG5cclxuLyoqXHJcbiAqIEB1c2FnZSBcdTc1MUZcdTYyMTAudnVlXHU2NTg3XHU0RUY2XHU4REVGXHU1Rjg0XHU1MjE3XHU4ODY4XHVGRjBDXHU3NTI4XHU0RThFXHU2REZCXHU1MkEwXHU4M0RDXHU1MzU1XHU2NUY2XHU1M0VGXHU0RTBCXHU2MkM5XHU5MDA5XHU2MkU5XHU1QkY5XHU1RTk0XHU3Njg0LnZ1ZVx1NjU4N1x1NEVGNlx1OERFRlx1NUY4NFx1RkYwQ1x1OTYzMlx1NkI2Mlx1NjI0Qlx1NTJBOFx1OEY5M1x1NTE2NVx1NjJBNVx1OTUxOVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFBhZ2VQYXRoZXMoKSB7XHJcbiAgY29uc3QgZmlsZXMgPSBnbG9iU3luYygnc3JjL3ZpZXdzLyoqLyoudnVlJylcclxuICByZXR1cm4gZmlsZXMubWFwKGl0ZW0gPT4gYC8ke3BhdGgubm9ybWFsaXplKGl0ZW0pLnJlcGxhY2UoL1xcXFwvZywgJy8nKX1gKVxyXG59XHJcbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiQzpcXFxcVXNlcnNcXFxcQWRtaW5pc3RyYXRvclxcXFxEZXNrdG9wXFxcXFx1OEQ4NVx1N0VBN1x1N0JBMVx1NzQwNlx1N0NGQlx1N0VERlxcXFx4aXlvdS1zb2xvbW9uLXN1YlxcXFxzcmNcXFxcYXNzZXRzXFxcXGljb25zXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCJDOlxcXFxVc2Vyc1xcXFxBZG1pbmlzdHJhdG9yXFxcXERlc2t0b3BcXFxcXHU4RDg1XHU3RUE3XHU3QkExXHU3NDA2XHU3Q0ZCXHU3RURGXFxcXHhpeW91LXNvbG9tb24tc3ViXFxcXHNyY1xcXFxhc3NldHNcXFxcaWNvbnNcXFxcZHluYW1pYy1pY29ucy5qc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vQzovVXNlcnMvQWRtaW5pc3RyYXRvci9EZXNrdG9wLyVFOCVCNiU4NSVFNyVCQSVBNyVFNyVBRSVBMSVFNyU5MCU4NiVFNyVCMyVCQiVFNyVCQiU5Ri94aXlvdS1zb2xvbW9uLXN1Yi9zcmMvYXNzZXRzL2ljb25zL2R5bmFtaWMtaWNvbnMuanNcIjsvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKlxyXG4gKlxyXG4gKiBATGFzdEVkaXRUaW1lOiAyMDIzLzEyLzA0IDIyOjUwOjQ5XHJcbiAqXHJcbiAqICAgfFxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcbi8vIFx1OTcwMFx1ODk4MVx1NTJBOFx1NjAwMVx1NkUzMlx1NjdEM1x1NzY4NGljb25pZnlcdTU2RkVcdTY4MDdcdUZGMENcdTRFRTVpLVx1NUYwMFx1NTkzNFxyXG5leHBvcnQgZGVmYXVsdCBbJ2ktc2ltcGxlLWljb25zOmp1ZWppbiddXHJcbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiQzpcXFxcVXNlcnNcXFxcQWRtaW5pc3RyYXRvclxcXFxEZXNrdG9wXFxcXFx1OEQ4NVx1N0VBN1x1N0JBMVx1NzQwNlx1N0NGQlx1N0VERlxcXFx4aXlvdS1zb2xvbW9uLXN1YlxcXFxidWlsZFxcXFxwbHVnaW4taXNtZVwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiQzpcXFxcVXNlcnNcXFxcQWRtaW5pc3RyYXRvclxcXFxEZXNrdG9wXFxcXFx1OEQ4NVx1N0VBN1x1N0JBMVx1NzQwNlx1N0NGQlx1N0VERlxcXFx4aXlvdS1zb2xvbW9uLXN1YlxcXFxidWlsZFxcXFxwbHVnaW4taXNtZVxcXFxpY29ucy5qc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vQzovVXNlcnMvQWRtaW5pc3RyYXRvci9EZXNrdG9wLyVFOCVCNiU4NSVFNyVCQSVBNyVFNyVBRSVBMSVFNyU5MCU4NiVFNyVCMyVCQiVFNyVCQiU5Ri94aXlvdS1zb2xvbW9uLXN1Yi9idWlsZC9wbHVnaW4taXNtZS9pY29ucy5qc1wiO2ltcG9ydCB7IGdldEljb25zIH0gZnJvbSAnLi4nXHJcblxyXG5jb25zdCBQTFVHSU5fSUNPTlNfSUQgPSAnaXNtZTppY29ucydcclxuZXhwb3J0IGZ1bmN0aW9uIHBsdWdpbkljb25zKCkge1xyXG4gIHJldHVybiB7XHJcbiAgICBuYW1lOiAnaXNtZTppY29ucycsXHJcbiAgICByZXNvbHZlSWQoaWQpIHtcclxuICAgICAgaWYgKGlkID09PSBQTFVHSU5fSUNPTlNfSUQpXHJcbiAgICAgICAgcmV0dXJuIGBcXDAke1BMVUdJTl9JQ09OU19JRH1gXHJcbiAgICB9LFxyXG4gICAgbG9hZChpZCkge1xyXG4gICAgICBpZiAoaWQgPT09IGBcXDAke1BMVUdJTl9JQ09OU19JRH1gKSB7XHJcbiAgICAgICAgcmV0dXJuIGBleHBvcnQgZGVmYXVsdCAke0pTT04uc3RyaW5naWZ5KGdldEljb25zKCkpfWBcclxuICAgICAgfVxyXG4gICAgfSxcclxuICB9XHJcbn1cclxuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJDOlxcXFxVc2Vyc1xcXFxBZG1pbmlzdHJhdG9yXFxcXERlc2t0b3BcXFxcXHU4RDg1XHU3RUE3XHU3QkExXHU3NDA2XHU3Q0ZCXHU3RURGXFxcXHhpeW91LXNvbG9tb24tc3ViXFxcXGJ1aWxkXFxcXHBsdWdpbi1pc21lXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCJDOlxcXFxVc2Vyc1xcXFxBZG1pbmlzdHJhdG9yXFxcXERlc2t0b3BcXFxcXHU4RDg1XHU3RUE3XHU3QkExXHU3NDA2XHU3Q0ZCXHU3RURGXFxcXHhpeW91LXNvbG9tb24tc3ViXFxcXGJ1aWxkXFxcXHBsdWdpbi1pc21lXFxcXHBhZ2UtcGF0aGVzLmpzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9DOi9Vc2Vycy9BZG1pbmlzdHJhdG9yL0Rlc2t0b3AvJUU4JUI2JTg1JUU3JUJBJUE3JUU3JUFFJUExJUU3JTkwJTg2JUU3JUIzJUJCJUU3JUJCJTlGL3hpeW91LXNvbG9tb24tc3ViL2J1aWxkL3BsdWdpbi1pc21lL3BhZ2UtcGF0aGVzLmpzXCI7aW1wb3J0IHsgZ2V0UGFnZVBhdGhlcyB9IGZyb20gJy4uJ1xyXG5cclxuY29uc3QgUExVR0lOX1BBR0VfUEFUSEVTX0lEID0gJ2lzbWU6cGFnZS1wYXRoZXMnXHJcbmV4cG9ydCBmdW5jdGlvbiBwbHVnaW5QYWdlUGF0aGVzKCkge1xyXG4gIHJldHVybiB7XHJcbiAgICBuYW1lOiAnaXNtZTpwYWdlLXBhdGhlcycsXHJcbiAgICByZXNvbHZlSWQoaWQpIHtcclxuICAgICAgaWYgKGlkID09PSBQTFVHSU5fUEFHRV9QQVRIRVNfSUQpXHJcbiAgICAgICAgcmV0dXJuIGBcXDAke1BMVUdJTl9QQUdFX1BBVEhFU19JRH1gXHJcbiAgICB9LFxyXG4gICAgbG9hZChpZCkge1xyXG4gICAgICBpZiAoaWQgPT09IGBcXDAke1BMVUdJTl9QQUdFX1BBVEhFU19JRH1gKSB7XHJcbiAgICAgICAgcmV0dXJuIGBleHBvcnQgZGVmYXVsdCAke0pTT04uc3RyaW5naWZ5KGdldFBhZ2VQYXRoZXMoKSl9YFxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gIH1cclxufVxyXG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQW1aLE9BQU9BLFdBQVU7QUFDcGEsT0FBTyxTQUFTO0FBQ2hCLE9BQU8sWUFBWTtBQUNuQixPQUFPLFlBQVk7QUFDbkIsT0FBTyxnQkFBZ0I7QUFDdkIsU0FBUyx1QkFBdUI7QUFDaEMsT0FBTyxnQkFBZ0I7QUFDdkIsU0FBUyxjQUFjLGVBQWU7QUFDdEMsT0FBTyxtQkFBbUI7QUFDMUIsT0FBTyxpQkFBaUI7OztBQ1RtWSxPQUFPLFVBQVU7QUFDNWEsU0FBUyxnQkFBZ0I7OztBQ1F6QixJQUFPLHdCQUFRLENBQUMsdUJBQXVCOzs7QURGaEMsU0FBUyxXQUFX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
